package com.skivingcloud.report.service.impl;

import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.skivingcloud.report.entity.ReportLuckysheet;
import com.skivingcloud.report.mapper.ReportLuckysheetMapper;
import com.skivingcloud.report.service.ReportLuckysheetService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.skivingcloud.common.utils.PageParameter;

/**
 * 协同文档sheet页配置信息 服务层实现。
 *
 * @author skivingcloud
 * @since 2024-11-07
 */
@Service
public class ReportLuckysheetServiceImpl extends ServiceImpl<ReportLuckysheetMapper, ReportLuckysheet> implements ReportLuckysheetService {

    /**
     * 分页查询协同文档sheet页配置信息
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    @Override
    public Page<ReportLuckysheet> queryByPage(PageParameter<ReportLuckysheet> parameter){
        Page<ReportLuckysheet> page = new Page<>(parameter.getPage(), parameter.getPageSize());
        QueryWrapper queryWrapper = QueryWrapper.create();
        if (parameter.getParam() != null) {
            //查询条件
            if (StringUtils.isNoneBlank(parameter.getParam().getId())) {
                queryWrapper.and(ReportLuckysheet::getId).like(parameter.getParam().getId());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getBlockId())) {
                queryWrapper.and(ReportLuckysheet::getBlockId).like(parameter.getParam().getBlockId());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getSheetIndex())) {
                queryWrapper.and(ReportLuckysheet::getSheetIndex).like(parameter.getParam().getSheetIndex());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getListId())) {
                queryWrapper.and(ReportLuckysheet::getListId).like(parameter.getParam().getListId());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getStatus())) {
                queryWrapper.and(ReportLuckysheet::getStatus).like(parameter.getParam().getStatus());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getSheetName())) {
                queryWrapper.and(ReportLuckysheet::getSheetName).like(parameter.getParam().getSheetName());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getColor())) {
                queryWrapper.and(ReportLuckysheet::getColor).like(parameter.getParam().getColor());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getHide())) {
                queryWrapper.and(ReportLuckysheet::getHide).like(parameter.getParam().getHide());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getMergeInfo())) {
                queryWrapper.and(ReportLuckysheet::getMergeInfo).like(parameter.getParam().getMergeInfo());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getRowlen())) {
                queryWrapper.and(ReportLuckysheet::getRowlen).like(parameter.getParam().getRowlen());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getColumnlen())) {
                queryWrapper.and(ReportLuckysheet::getColumnlen).like(parameter.getParam().getColumnlen());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getRowhidden())) {
                queryWrapper.and(ReportLuckysheet::getRowhidden).like(parameter.getParam().getRowhidden());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getColhidden())) {
                queryWrapper.and(ReportLuckysheet::getColhidden).like(parameter.getParam().getColhidden());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getBorderInfo())) {
                queryWrapper.and(ReportLuckysheet::getBorderInfo).like(parameter.getParam().getBorderInfo());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getCalcChain())) {
                queryWrapper.and(ReportLuckysheet::getCalcChain).like(parameter.getParam().getCalcChain());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getFilterSelect())) {
                queryWrapper.and(ReportLuckysheet::getFilterSelect).like(parameter.getParam().getFilterSelect());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getFilter())) {
                queryWrapper.and(ReportLuckysheet::getFilter).like(parameter.getParam().getFilter());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getLuckysheetAlternateformatSave())) {
                queryWrapper.and(ReportLuckysheet::getLuckysheetAlternateformatSave).like(parameter.getParam().getLuckysheetAlternateformatSave());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getLuckysheetConditionformatSave())) {
                queryWrapper.and(ReportLuckysheet::getLuckysheetConditionformatSave).like(parameter.getParam().getLuckysheetConditionformatSave());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getImage())) {
                queryWrapper.and(ReportLuckysheet::getImage).like(parameter.getParam().getImage());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getDataVerification())) {
                queryWrapper.and(ReportLuckysheet::getDataVerification).like(parameter.getParam().getDataVerification());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getFrozen())) {
                queryWrapper.and(ReportLuckysheet::getFrozen).like(parameter.getParam().getFrozen());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getHyperlink())) {
                queryWrapper.and(ReportLuckysheet::getHyperlink).like(parameter.getParam().getHyperlink());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getDelFlag())) {
                queryWrapper.and(ReportLuckysheet::getDelFlag).like(parameter.getParam().getDelFlag());
            }
            if (StringUtils.isNoneBlank(parameter.getParam().getFilterrowhidden())) {
                queryWrapper.and(ReportLuckysheet::getFilterrowhidden).like(parameter.getParam().getFilterrowhidden());
            }
        }
        return this.page(page, queryWrapper);
    }
}
